Skip to main content

Blockchain System

Scenario

A blockchain system can be viewed as a database replicated across multiple nodes (each node having its own operating system) distributed in different locations. All nodes start with exactly the same user database. There are frontend services to handle client requests (e.g., transferring from Alice to Bob). The backend service, each node receives the same transaction and applies changes to its own local database (subtracting from Alice's wallet variable and adding to Bob's wallet variable). Finally, there's a consensus stage where it's checked if the majority of nodes have the same database in the end. If yes, the action is retained. Otherwise, it's canceled.

Answer the following questions with "True" or "False" and justify the response. Justification should be simple, 2-3 sentences for each response.

Questions

  1. At the node level, transaction execution will benefit from using the buffer cache. Answer: True

  2. The frontend services are I/O intensive. Answer: True

  3. The backend service is I/O intensive. Answer: True

  4. For the consensus routine, communication between nodes can be done through shared memory. Answer: False

  5. If a node becomes unavailable, the entire system becomes unusable. Answer: False

  6. The frontend service predominantly uses socket file descriptors. Answer: True

  7. The backend service predominantly uses file descriptors of type file. Answer: True

  8. All nodes need to use the same operating system to communicate and synchronize. Answer: False

  9. If consensus is reached, all nodes will write the obtained result into the database. Synchronization mechanism is needed for this write. Answer: False

  10. An SSD (fast storage) is more useful for the frontend service than for the backend. Answer: False

  11. The backend service uses a lot of RAM (almost the entire system memory). Answer: True